home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / archival / ftp / BFTP.312 / fts.h < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-29  |  2.5 KB  |  78 lines

  1. /************************************************************************
  2.  *                                    *
  3.  *    Background File Transfer Program (BFTP)                *
  4.  *                                    *
  5.  *    Written at USC/Information Sciences Institute            *
  6.  *    September, 1988                            *
  7.  *                                    *
  8.  *    BFTP is Public Domain, and may be used for any purpose as    *
  9.  *    long as this notice is not removed.  USC-ISI does not assume    *
  10.  *     any responsibility for the correctness, performance, or use    *
  11.  *    of this software.                        *
  12.  *                                    *
  13.  ************************************************************************/
  14.  
  15.  /* 
  16.   *        File Transfer Service
  17.   *
  18.   *  The File Transfer Service provides background file transfer
  19.   *  service for the Internet, by driving FTP Servers to cause the desired
  20.   *  file transfer.  It queues requests and tries them periodically until
  21.   *  they succeed.
  22.   *
  23.   */
  24.   
  25. #include "bftp.h"
  26.         
  27. extern int errno ;
  28. extern char *sys_errlist[] ;
  29.   
  30.     /* Define server information structure 
  31.      */
  32. #define MAX_addrs 4
  33.  
  34. struct server_struct {
  35.     struct hostinfo h;
  36.     
  37.     struct in_addr inetaddr[MAX_addrs] ;  
  38.                 /* List of Internet addresses (unused
  39.                  *  entries are zero). */
  40.     short addrcurr ;        /* Index of current inaddr[] entry */
  41.     short hostcount;    /* Number of inaddr entries */
  42.     
  43.     int   socket ;          /* Socket number */
  44.     FILE *fpin ;            /* File Pointer for input side of Telnet conn*/
  45.     FILE *fpout ;           /* File Pointer for output side */
  46.     char dir_delim;
  47. } ;
  48.  
  49. typedef  struct server_struct *SHandle;
  50.  
  51.     /*  Define result codes from various routines*/
  52. #define OK  0
  53.  
  54. #define ERR_RETRY     -1 /* Failed, but can be tried later.  err_string will
  55.                           * contain explanatory string concerning error.
  56.                           */
  57. #define ERR_PERMANENT -2 /* Failed and should not be retried. err_string will
  58.                           * contain explanatory string concerning error.
  59.                           */
  60. #define ERR_SYSTEM    -3 /* Local system failure. err_string will
  61.                           * contain explanatory string concerning error.
  62.                           */
  63.  
  64. #define FTPTIMEOUT 60       /* seconds */              
  65. #define MAXFTSTIME 14400   /* seconds (14400 = 4 hours) */
  66. #define MAXINTERVAL 240    /* minutes (4 hours) = limit for backoff */
  67.  
  68. #define MAXerrstr 100      /* max length global err_string */
  69. #define MAXreply  1024     /* max length of reply that is saved */
  70.  
  71. /*  Define FTP reply codes -- leading digits */
  72. #define REP_TIMEOUT 0
  73. #define REP_PRELIM 1
  74. #define REP_OK     2
  75. #define REP_NEEDMORE 3
  76. #define REP_TEMPERR  4
  77. #define REP_PERMERR  5
  78.